/*
Description
输入一个长度为 n 的整数序列。
接下来输入 m 个操作，每个操作包含三个整数 l,r,c，表示将序列中 [l,r] 之间的每个数加上 c。
请你输出进行完所有操作后的序列。

Input
第一行包含两个整数 n 和 m。
第二行包含 n 个整数，表示整数序列。
接下来 m 行，每行包含三个整数 l，r，c，表示一个操作。

Output
共一行，包含 n 个整数，表示最终序列。

数据范围
1≤n,m≤100000,
1≤l≤r≤n,
−1000≤c≤1000,
−1000≤整数序列中元素的值≤1000

Sample Input
6 3
1 2 2 1 2 1
1 3 1
3 5 1
1 6 1

Sample Output
3 4 5 3 4 2
*/
#include <bits/stdc++.h>
using namespace std;
int a[100002], b[100002];
int main()
{
    int n, m, l, r, c;
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
        b[i] = a[i] - a[i - 1]; // 差分
    }
    for (int i = 1; i <= m; i++)
    {
        cin >> l >> r >> c;
        b[l] += c;
        b[r + 1] -= c;
    }
    for (int i = 1; i <= n; i++) // 求差分数组的前缀和
    {
        a[i] = a[i - 1] + b[i];
    }
    for (int i = 1; i <= n; i++)
    {
        cout << a[i] << " ";
    }
    return 0;
}
